home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / Internet Chooser / reggie / basic / patches.h < prev    next >
Text File  |  1996-06-22  |  2KB  |  70 lines

  1. // File "patches.h" - 
  2.  
  3. #ifndef __PATCHES_HEADER__
  4. #define __PATCHES_HEADER__
  5.  
  6. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  7. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  8. /* Include Files */
  9.  
  10. #include "stdtypes.h"
  11.  
  12. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  13. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  14. /* Preprocessor Defines */
  15.  
  16.  
  17. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  18. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  19. /* Structure/Class Definitions */
  20.  
  21. // Setup calling information for the routines we need
  22. #if !GENERATINGCFM
  23. typedef pascal void (*ExitToShellProcPtr)();
  24. typedef ExitToShellProcPtr ExitToShellUPP;
  25. enum {
  26.     uppExitToShellProcInfo = 0
  27.     };
  28. #define NewExitToShellProc(proc) (ExitToShellUPP)(proc)
  29. #define CallExitToShellProc(proc) (* (ExitToShellProcPtr) (proc))()
  30. #else
  31. typedef UniversalProcPtr ExitToShellUPP;
  32. enum {
  33.     uppExitToShellProcInfo = kPascalStackBased
  34.     };
  35. #define NewExitToShellProc(proc) (ExitToShellUPP) \
  36.         NewRoutineDescriptor((ProcPtr)(proc), uppExitToShellProcInfo, GetCurrentISA())
  37. #define CallExitToShellProc(proc) \
  38.         CallUniversalProc((UniversalProcPtr) (proc), uppExitToShellProcInfo)
  39. #endif GENERATINGCFM
  40.  
  41. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  42.  
  43. typedef void (*E2STaskProc)(void *taskData);
  44.  
  45. typedef struct E2STask {
  46.     struct E2STask *qLink;
  47.     E2STaskProc proc; // Not a UPP
  48.     void *data;
  49.     } E2STask, *E2STaskPtr;
  50.     
  51. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  52. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  53. /* Function Prototypes */
  54.  
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif
  58.  
  59. SInt32 InstallE2STask(E2STaskProc taskProc, void *taskData);
  60. void RemoveE2STask(E2STaskProc taskProc, void *taskData);
  61.  
  62. #ifdef __cplusplus
  63. }
  64. #endif
  65.  
  66. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  67. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  68.  
  69. #endif /* __PATCHES_HEADER__ */
  70.